package com.demo.java.OD601_650.OD617;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【最多颜色的车辆(A卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146870083
 */
public class OdMain {
    public static void main(String[] args) {
        // 处理输入，读取车辆颜色信息
        Scanner in = new Scanner(System.in);
        String input_str = in.nextLine();
        String[] input_list = input_str.split(" ");

        int[] cars = new int[input_list.length];
        for (int i = 0; i < input_list.length; i++) {
            cars[i] = Integer.parseInt(input_list[i]); // 将车辆颜色转换为整数
        }

        // 读取窗口大小
        String window_size_str = in.nextLine();
        int window_size = Integer.parseInt(window_size_str);

        // 初始化滑动窗口，统计窗口中每个颜色的数量
        int[] car_count = new int[3]; // 假设只有0、1、2三种颜色
        for (int i = 0; i < window_size; i++) {
            car_count[cars[i]] += 1; // 初始化前 window_size 个车流
        }

        // 记录滑动窗口内最多的车辆颜色数
        int max_res = Math.max(Math.max(car_count[0], car_count[1]), car_count[2]);

        // 滑动窗口：遍历所有车辆，通过移除窗口左侧并添加右侧来更新窗口
        for (int i = window_size; i < cars.length; i++) {
            // 添加新的右侧车流
            car_count[cars[i]] += 1;
            // 移除左侧车流
            car_count[cars[i - window_size]] -= 1;
            // 更新最多出现的颜色数量
            max_res = Math.max(max_res, Math.max(Math.max(car_count[0], car_count[1]), car_count[2]));
        }

        // 输出结果，最大出现次数的车辆颜色数
        System.out.println(max_res);
    }
}